home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / jazlib.arc / JZGETCLS.C < prev    next >
Text File  |  1988-12-18  |  982b  |  34 lines

  1. /*
  2. ┌────────────────────────────────────────────────────────────────────────────┐
  3. │jzgetcls.c                                     │
  4. │Return a     cluster given a two byte cluster word from a lookup         │
  5. │into the file allocation table.                         │
  6. │                                         │
  7. │See jzgetfat.dmo for examples                             │
  8. │                                         │
  9. │ (C) JazSoft Software by Jack A. Zucker (301) 794-5950              │
  10. └────────────────────────────────────────────────────────────────────────────┘
  11. */
  12.  
  13. jzgetcls(ffat , fcluster , fbigfat)
  14. char *ffat;
  15. int fcluster;
  16. int fbigfat;            /* true on 20mg or > disks */
  17. {
  18.   int wcluster,woddeven;
  19.  
  20.   if (fbigfat) {
  21.     memcpy(&wcluster , ffat + (fcluster << 1),2);  /* get cluster */
  22.     return(wcluster);
  23.   }
  24.  
  25.   woddeven = 3 * fcluster;
  26.  
  27.   memcpy(&wcluster , ffat + (woddeven >> 1),2);  /* get cluster */
  28.  
  29.   if (woddeven & 1)
  30.     return(wcluster >> 4);           /* get rid of low nibble */
  31.   else
  32.     return(wcluster & 0xFFF);           /* get rid of high nibble */
  33. }
  34.